import sys
from PyQt5.QtWidgets import QMainWindow,QApplication,QWidget,QDesktopWidget
from PyQt5.QtCore import QCoreApplication

'''
窗体居中
'''
class MyQwidget(QWidget):
    def __init__(self):
        super(QWidget,self).__init__()
        self.initUI()

    def initUI(self):
        #设置窗口title、尺寸
        self.setWindowTitle('Simple PyQt5 Gui')
        self.resize(300,500)
        self.move(600,400)

        self.center()

        #将控件显示在屏幕上，必须设置shouw才能看到图形效果
        self.show()


    def center(self):
        #得到一个指定了主窗体形状的矩形
        qr = self.frameGeometry()

        #指出显示器的屏幕分辨率并根据分辨率找出屏幕的中心点
        cp = QDesktopWidget().availableGeometry().center()

        #将矩形移动到屏幕中心，尺寸不变
        qr.moveCenter(cp)

        #将窗体的左上角移动到矩形qr的左上角，窗体与矩形重合，从而将窗体置于屏幕中心
        self.move((qr.topLeft()))


if __name__ == "__main__":
    print("hello world")
    app = QApplication(sys.argv)

    myQwidget = MyQwidget()

    #进入application的主循环，开始接收事件处理并将事件分发给控件，在exit()保证干净退出，当主控件销毁或者调用exit()方法时主循环会停止
    sys.exit(app.exec_())